/**
 * 迭代器 
 *      Array
 *      定型数组
 *      Map
 *      Set
 *      这四个类型都可以使用for of 迭代，都兼容扩展操作符，可以浅拷贝
 *  对于期待可迭代对象的构造函数，只要传入一个可迭代对象就可以实现复制
 *  上面这些类型都支持多种构建方法，比如Array.of()和Array.from()
 */
// 复制Map
let map1 = new Map([[1, 2], [3, 4]])
let map2 = new Map(map1)
// 把数组复制到定型数组
let arr1 = [1, 2, 3];
let typedArr1 = Int16Array.of(...arr1)
let typedArr2 = Int16Array.from(arr1)
// 把数组复制到映射
let map = new Map(arr1.map((x) => [x, 'val' + x]))
// 把数组复制到集合
let set = new Set(typedArr2)
// 把集合复制回数组
let arr2 = [...set]
